//
//  HJSearchBar.swift
//  zhangmiSinweibo
//
//  Created by zhangmi on 16/5/20.
//  Copyright © 2016年 Paramount Pictures. All rights reserved.
//

import UIKit

//IBDesgainable: 实时显示属性的设置
//1.必须是自定义的视图


class HJSearchBar: UIView {
//        @IBInspectable var cornerRadius: CGFloat {
//            get {
//                return layer.cornerRadius
//            }
//    
//            set {
//                layer.cornerRadius = newValue
//            }
//        }
    
    
    @IBOutlet weak var SearchTF: UITextField!
    
    @IBOutlet weak var cancelBtn: UIButton!
    @IBOutlet weak var rightCons: NSLayoutConstraint!
    
    
    //提供加载nib文件的类方法
    //在func 前加 "class" 就是类方法
    class func loadSearchBar() -> HJSearchBar {
        let searchView = NSBundle.mainBundle().loadNibNamed("HJSearchBar", owner: nil, options: nil).last as! HJSearchBar
        return searchView
    }
    
    
    //在awakeFromNib做初始化设置
    override func awakeFromNib() {
        //设置宽度
        //bounds.width的width只是bounds的只读属性
        //要修改大小需要通过size进行修改
        self.bounds.size.width = ScreenWidth
        //文本输入框有leftView
        SearchTF.leftView = UIImageView(image: UIImage(named: "searchbar_textfield_search_icon"))
        //设置显示的模式
        SearchTF.leftViewMode = .Always
        //修改frame
        SearchTF.leftView?.frame = CGRect(x: 0, y: 0, width: 50, height: 60)
        //设置视图的显示模式
        SearchTF.leftView?.contentMode = .Center
        
        
        //设置圆角
//        self.layer.cornerRadius = 20
//        self.layer.masksToBounds = true
//        //设置边线的颜色
//        self.layer.borderColor = UIColor.orangeColor().CGColor
//        self.layer.borderWidth = 2
    
        
    }
    
    @IBAction func textFiledBeginEditing(sender: AnyObject) {
        //修改约束
        //0.25 系统默认的动画事件
        UIView.animateWithDuration(0.25) {
            self.rightCons.constant = self.cancelBtn.bounds.width
            
            //提前强制刷新视图
            self.layoutIfNeeded()
        }
    }

    
    //关联 取消按钮的点击事件, 取消 textFiled编辑状态
    @IBAction func cancelBtnDidClick(sender: AnyObject) {
        //修改约束
        //收集约束的变化
        self.rightCons.constant = 0
        UIView.animateWithDuration(0.25) {
            //提前强制刷新视图
            //1.自动布局的视图也是有frame的
            //2.视图的frame是在layoutSubView方法中根据约束来设置
            //3.提前调用了layoutSubViews
            //更新视图的frame在一个动画闭包中
            //执行父视图的layoutIfNeeded 
            self.layoutIfNeeded()

        }
        
        //结束编辑的状态
        //
//        SearchTF.resignFirstResponder()
        self.endEditing(true)
    
    }
}
